// 数组扩展

// es6 数组新增方法
// {
//   // Array.from() 将 类似数组的对象 （不是数组，没有数组的方法） 转换为数组
//   let span = document.querySelectorAll('span');
//   console.log(span);
//   console.log(Array.from(span));
// }

// {
//   // Array.of方法用于将一组值，转换为数组。
//   let str = '1,2,3,4,5,6';
//   console.log(Array.of(str));
// }

// {
//   // 数组实例的copyWithin()方法，在当前数组内部，将指定位置的成员复制到其他位置（会覆盖原有成员），然后返回当前数组。也就是说，使用这个方法，会修改当前数组。
//   // target（必需）：从该位置开始替换数据。如果为负值，表示倒数。
//   // start（可选）：从该位置开始读取数据，默认为 0。如果为负值，表示从末尾开始计算。
//   // end（可选）：到该位置前停止读取数据，默认等于数组长度。如果为负值，表示从末尾开始计算。
//   const arr = [1, 2, 3, 4, 5, 6];

//   console.log(arr.copyWithin(0, 4, 5));
// }

// {
//   // find()  findindex() 方法

//   const arr = [1, 24, 6, 8, 9, 4, 3];

//   const newarr = arr.find((item) => item > 6); // 查找满足条件的一项  只查找一次
//   console.log(newarr);

//   const index = arr.findIndex((item) => item > 8); // 查找满足条件的一项的下标值  只查找一次
//   console.log(index);
// }

// {
//   // fill() 方法  fill方法使用给定值，填充一个数组   // 会改变原来数组
//   //  fill方法还可以接受第二个和第三个参数，用于指定填充的起始位置和结束位置
//   const arr = [1, 24, 6, 8, 9, 4, 3];
//   // console.log(arr.fill(2));
//   console.log(arr.fill(1, 4, 6));
// }

// {
//   // 数组实例的 entries()，keys() 和 values()
//   const arr = [1, 2, 3, 4, 5, 6, 7];
//   // for (const v of arr.values()) {
//   //   console.log(v);  // 1 2 3 4 5 6 7  打印每一项的值
//   // }

//   // for (const k of arr.keys()) {
//   //   console.log(k);  // 0 1 2 3 4 5 6   打印每一项的下标
//   // }

//   for (let [k, v] of arr.entries()) {
//     console.log(k + '---' + v); // 打印 下标值 --- 每一项的值
//   }
// }

{
  // includes() 方法 查找数组中是否包含莫一项  返回布尔值  与indexOf() 区别
  const arr = [1, 2, 3, 4, 5, 6, 7];

  console.log(arr.indexOf(2)); //1
  console.log(arr.indexOf('a')); // -1

  console.log(arr.includes(2)); // true
  console.log(arr.includes('a')); // false
}
